package com.yimils.core.sys.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yimils.core.common.dto.GetQueryParams;
import com.yimils.core.sys.dto.ReqAddUser;
import com.yimils.core.sys.dto.ReqUpdateUser;
import com.yimils.core.sys.entity.UserEntity;
import com.yimils.core.sys.vo.*;

import java.util.List;

public interface UserService extends IService<UserEntity> {
    boolean createUser(ReqAddUser reqParams);
    String getUserSalt(String username);

    boolean updateUserPassword(Long userId, String password);
    boolean lockUser(Long userId, Integer active);
    boolean changeDept(Long userId, Long deptId);
    List<CustomerUserVo> getCustomerUsers(Long superiorId);
    boolean updateUserVo(UserVo userVo);
    boolean updateUser(ReqUpdateUser dto);

    IPage<UserEntity> getUserEntities(GetQueryParams queryParams);

    IPage<UserVo> getUsers(GetQueryParams queryParams);

    IPage<TeamVo> getUserTeam(GetQueryParams queryParams);

    IPage<PartnerVo> getPartner(GetQueryParams pageParam);

    IPage<HotelVo> getUserHotel(GetQueryParams queryParam);

    IPage<FeederVo> getFeeders(GetQueryParams queryParam);

    IPage<PartnerAgentVo> getAgents(GetQueryParams queryParam);
}
